home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Pascal / Snippets / PNL Libraries / MyFileIDs.p < prev    next >
Encoding:
Text File  |  1996-05-29  |  1006 b   |  51 lines  |  [TEXT/CWIE]

  1. unit MyFileIDs;
  2.  
  3. interface
  4.  
  5.     uses
  6.         Files;
  7.         
  8.     function CreateFileID(var spec: FSSpec; var id: longint): OSErr;
  9.     function ResolveFileID(vrn: integer; id: longint; var spec: FSSpec): OSErr;
  10.  
  11. implementation
  12.  
  13.     uses
  14.         Errors, 
  15.         Mymemory;
  16.         
  17.     function CreateFileID(var spec: FSSpec; var id: longint): OSErr;
  18.         var
  19.             err: OSErr;
  20.             pb: HParamBlockRec;
  21.     begin
  22.         MZero(@pb, SizeOf(pb));
  23.         pb.ioVRefNum := spec.vRefNum;
  24.         pb.ioSrcDirID := spec.parID;
  25.         pb.ioNamePtr := @spec.name;
  26.         err := PBCreateFileIDRefSync(@pb);
  27.         if (err = fidExists) then begin
  28.             err := noErr;
  29.         end;
  30.         id := pb.ioFileID;
  31.         CreateFileID := err;
  32.     end;
  33.     
  34.     function ResolveFileID(vrn: integer; id: longint; var spec: FSSpec): OSErr;
  35.         var
  36.             err: OSErr;
  37.             pb: HParamBlockRec;
  38.     begin
  39.         MZero(@pb, SizeOf(pb));
  40.         pb.ioVRefNum := vrn;
  41.         pb.ioFileID := id;
  42.         spec.name := '';
  43.         pb.ioNamePtr := @spec.name;
  44.         err := PBResolveFileIDRefSync(@pb);
  45.         spec.vRefNum := pb.ioVRefNum;
  46.         spec.parID := pb.ioSrcDirID;
  47.         ResolveFileID := err;
  48.     end;
  49.     
  50. end.
  51.